#ifndef LOGGER_H
#define LOGGER_H

#include <iostream>
#include <fstream>
#include <stdexcept>
#include <string>
#include <unistd.h>
#include <boost/date_time/posix_time/posix_time.hpp>

using namespace std;

namespace Log{

	enum LogLevl{Debug=1, Info, Warn, Error};
	
	class Logger
	{
		public:
			static Logger& getInstance();  
			const Logger& log(const std::string message, LogLevl level);
		protected:
	     static Logger* sLogger;
	     friend class CleanUp;
	     class CleanUp
	     {
	     	  public:
	     	  	CleanUp();
	     	  	~CleanUp();
	     	  private:
	     	  	
	     };
		   std::ofstream fileout;
		private:
	      Logger();
		    Logger(const Logger&);
			  Logger& operator=(const Logger&);
		    ~Logger();
	};
}

#endif
